6e76d4e3a6c097325ac6719d5915b3fa6c463682,opennms-webapp/src/main/java/org/opennms/web/ServletInitializer.java,ServletInitializer,init,#ServletContext#,110
Before Change
// read the OpenNMS properties
Properties properties = new Properties(System.getProperties());
InputStream configurationStream = context.getResourceAsStream(propertiesResource);
if (configurationStream == null) {
throw new ServletException("Could not load properties from resource \'" + propertiesResource + "\'");
}
properties.load(configurationStream);
configurationStream.close();
Enumeration initParamNames = context.getInitParameterNames();
while (initParamNames.hasMoreElements()) {
String name = (String) initParamNames.nextElement();
properties.put(name, context.getInitParameter(name));
}
String homeDir = properties.getProperty("opennms.home");
if (homeDir == null) {
throw new ServletException("The opennms.home context parameter must be set.");
}
After Change
// first, check if opennms.home is set, if so, we already have properties
// because we're in Jetty
String homeDir = properties.getProperty("opennms.home");
if (homeDir == null) {
// If not, load properties from configuration.properties
String propertiesResource = "/WEB-INF/configuration.properties";
InputStream configurationStream = context.getResourceAsStream(propertiesResource);
if (configurationStream == null) {
throw new ServletException("Could not load properties from resource '" + propertiesResource + "'");
} else {
properties.load(configurationStream);
configurationStream.close();
}
}
homeDir = properties.getProperty("opennms.home");
if (homeDir == null) {
throw new ServletException("The opennms.home context parameter must be set.");
}
String etcDir = homeDir + File.separator + "etc";
// now that we've got opennms.home, load $OPENNMS_HOME/etc/opennms.properties
// in case it isn't-- but if anything is already set, we don't override it.
Properties opennmsProperties = new Properties();
InputStream configurationStream = new FileInputStream(etcDir + File.separator + "opennms.properties");
opennmsProperties.load(configurationStream);
configurationStream.close();
for (Enumeration<Object> opennmsKeys = opennmsProperties.keys(); opennmsKeys.hasMoreElements(); ) {
Object key = opennmsKeys.nextElement();
if (!properties.containsKey(key)) {
properties.put(key, opennmsProperties.get(key));
}
}